home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / snmp_detect.nasl < prev    next >
Text File  |  2005-03-31  |  3KB  |  112 lines

  1. #
  2. # This script was written by Noam Rathaus <noamr@securiteam.com>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6. #
  7. # Changes by rd : improved the SNMP detection (done using
  8. # a null community name)
  9. #
  10. # Changes by Tenable Network Security:
  11. # detect versions 2c and 2u of SNMP protocol
  12.  
  13. if(description)
  14. {
  15.  script_id(10265);
  16.  script_version ("$Revision: 1.19 $");
  17.  
  18.  name["english"] = "An SNMP Agent is running";
  19.  script_name(english:name["english"]);
  20.  
  21.  desc["english"] = "Either (or both) of the ports UDP:161 and UDP:162 are open. This usually
  22. indicates an SNMP agent is present. Having such an agent open to outside
  23. access may be used to compromise sensitive information, and can be used to
  24. cause a Denial of Service attack. Certain SNMP agents may be
  25. vulnerable to root compromise attacks.
  26.  
  27. More Information:
  28. http://www.securiteam.com/exploits/Patrol_s_SNMP_Agent_3_2_can_lead_to_root_compromise.html
  29.  
  30. Risk factor : High";
  31.  
  32.  script_description(english:desc["english"]);
  33.  
  34.  summary["english"] = "An SNMP Agent is running";
  35.  script_summary(english:summary["english"]);
  36.  
  37.  script_category(ACT_GATHER_INFO);
  38.  
  39.  script_copyright(english:"This script is Copyright (C) 1999 SecuriTeam");
  40.  family["english"] = "SNMP";
  41.  script_family(english:family["english"]);
  42.  
  43.  exit(0);
  44. }
  45.  
  46. #
  47. # The script code starts here
  48. #
  49.  
  50.  if(!(get_udp_port_state(161)))exit(0);
  51.  
  52.  socudp161 = open_sock_udp(161);
  53.  
  54.  data = 'A SNMP server is running on this host\nThe following versions are supported\n';
  55.  flag = 0;
  56.  
  57.  ver[0] = "1";
  58.  ver[1] = "2c";
  59.  ver[2] = "2u";
  60.  
  61.  if (socudp161) {
  62.   for (i=0; i<3; i++) { 
  63.       req = raw_string(
  64.             0x30, 0x82, 0x00, 0x26, 0x02, 0x01,           
  65.       i, 0x04, 0x00, 0xA1, 0x82, 0x00, 0x1D, 0x02,
  66.       0x04, 0x1D, 0x99, 0x1E, 0xF4, 0x02, 0x01, 0x00,
  67.       0x02, 0x01, 0x00, 0x30, 0x82, 0x00, 0x0D, 0x30,
  68.       0x82, 0x00, 0x09, 0x06, 0x05, 0x2B, 0x06, 0x01,
  69.       0x02, 0x01, 0x05, 0x00);
  70.       
  71.        
  72.       send(socket:socudp161, data:req);
  73.   
  74.       result = recv(socket:socudp161, length:1000, timeout:1);
  75.       if (result) {
  76.           flag++;
  77.           data += string("SNMP version",ver[i],"\n");
  78.       }
  79.   }   
  80.  
  81.   if (flag > 0) {
  82.        security_warning(port:161, data:data, protocol:"udp");
  83.        set_kb_item(name:"SNMP/running", value:TRUE);
  84.   }
  85.  
  86.  
  87.  }   # end if (socudp161)
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  socudp162 = open_sock_udp(162);
  96.  if (socudp162)
  97.  {
  98.   send(socket:socudp162, data:string("\r\n"));
  99.   result = recv(socket:socudp162, length:1, timeout:1);
  100.   if (strlen(result)>1)
  101.   {
  102.    data = "SNMP Trap Agent port open, it is possible to
  103. overflow the SNMP Traps log with fake traps (if proper community
  104. names are known), causing a Denial of Service";
  105.    security_warning(port:162, data:data, protocol:"udp");
  106.   }
  107.  }
  108.  
  109.  close(socudp162);
  110.  
  111.  
  112.